Static Analysis of Lockless Microcontroller C Programs
نویسندگان
چکیده
Concurrently accessing shared data without locking is usually a subject to race conditions resulting in inconsistent or corrupted data. However, there are programs operating correctly without locking by exploiting the atomicity of certain operations on a specific hardware. In this paper, we describe how to precisely analyze lockless microcontroller C programs with interrupts by taking the hardware architecture into account. We evaluate this technique in an octagon-based value range analysis using access-based localization to increase efficiency.
منابع مشابه
Automatic Bug Detection in Microcontroller Software by Static Program Analysis
Microcontroller software typically consists of a few hundred lines of code only, but it is rather different from standard application code. The software is highly hardware and platform specific, and bugs are often a consequence of neglecting subtle specifications of the microcontroller architecture. Currently, there are hardly any tools for analyzing such software automatically. In this paper, ...
متن کاملApplication of static analyses for state-space reduction to the microcontroller binary code
This article describes the application of two abstraction techniques, namely dead variable reduction and path reduction, to microcontroller binary code in order to tackle the state-explosion problem in model checking. These abstraction techniques are based on static analyses, which have to cope with the peculiarities of binary code such as hardware dependencies, interrupts, recursion, and globa...
متن کاملTool-Supported Dataflow Analysis of a Security-Critical Embedded Device
Defence organisations perform information security evaluations to confirm that electronic communications devices are safe to use in security-critical situations. Such evaluations include tracing all possible dataflow paths through the device, but this process is tedious and error-prone, so automated reachability analysis tools are needed to make security evaluations faster and more accurate. Pr...
متن کاملCertainty in Lockless Concurrent Algorithms: an Informal Proof of Lace
Lockless concurrent programming brings new challenges to the field of program verification. These lockless programs require methods such as compare-and-swap and memory fences to ensure correctness. However, their unpredictable behaviour in combination with these methods complicates verifying such algorithms. We use linearisation points[3], i.e. the points in time when the state of the system ch...
متن کاملAdaptable Value-Set Analysis for Low-Level Code
This paper presents a framework for binary code analysis that uses only SAT-based algorithms. Within the framework, incremental SAT solving is used to perform a form of weakly relational value-set analysis in a novel way, which connects the expressiveness of the value-sets to computational complexity. Another key feature of our framework is that it translates the semantics of binary code into a...
متن کامل